/**
 * @author: yyq
 * @date: 2025年3月18日 11:04:32
 * @description: 
 */
package com.sheepone.monitor.audit.anno;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author: yyq
 * @date: 2025年3月18日 11:04:32
 * @description:
 *               1、注解标注在方法上，配合AuditContextAspect切面处理
 *               2、方法执行之前：自动创建新的AuditLogMessage实例将其注入到AuditLogMessageContext中
 *               3、方法执行之后：自动将AuditLogMessageContext中的AuditLogMessage实例发送到服务端
 * @see com.sheepone.monitor.audit.aspect.AuditCommitAspect
 * @see com.sheepone.audit.client.AuditLogMessageContext
 */
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface AuditCommit {
    String service() default "";

    String action();

    String module();

    String scene() default ""; // TODO 场景，后续开发场景处理器，用于简化不通场景对于一些信息的自动提取，例如不用场景下的userId的提取

    boolean auto() default true;
}
